/*
 * StringMatchingOnOrderedAlphabets.h
 *
 *  Created on: 03-09-2013
 *      Author: Krzychu
 */

#ifndef STRINGMATCHINGONORDEREDALPHABETS_H_
#define STRINGMATCHINGONORDEREDALPHABETS_H_

#include "IAlgorithm.h"

class StringMatchingOnOrderedAlphabets : public IAlgorithm
{
public:
	StringMatchingOnOrderedAlphabets();
	virtual ~StringMatchingOnOrderedAlphabets();
	virtual searchResult execute(std::string text, std::string pattern);
	virtual std::string getName();
private:
	void nextMaximalSuffix(std::string text, int *i, int *j, int *k, int *p);
};

#endif /* STRINGMATCHINGONORDEREDALPHABETS_H_ */
